// #ifndef VUE3
import Vue from 'vue'
import App from './App'
import store from '@/store/store.js'
//导入网络请求的包
import {
	$http
} from '@escook/request-miniprogram'

uni.$http = $http

uni.$showMsg = function(title = '数据请求失败！', duration = 1500) {
	uni.showToast({
		title,
		duration,
		icon: 'none'
	})
}
$http.baseUrl = 'https://api-hmugo-web.itheima.net'
//请求拦截器
$http.beforeRequest = function(options) {
	uni.showLoading({
		title: '数据加载中...'
	})
	if(options.url.indexOf('/my/') !== -1){
		options.header={
			Authorization:store.state.m_user.token
		}
	}
}
//响应拦截器
$http.afterRequest = function(options) {
	uni.hideLoading()
}
// 配置第二个 API 地址的请求方法
uni.$http2 = {
	baseUrl: 'http://192.168.110.153:8082',
	beforeRequest(options) {
		uni.showLoading({
			title: '数据加载中...'
		});
	},
	afterRequest() {
		uni.hideLoading();
	},
	// 封装请求方法
	get(url, data) {
		return new Promise((resolve, reject) => {
			const options = {
				url: this.baseUrl + url,
				method: 'GET',
				data,
			};

			// 调用 beforeRequest 钩子
			if (this.beforeRequest) {
				this.beforeRequest(options);
			}

			uni.request({
				...options,
				success: res => resolve(res),
				fail: err => reject(err),
				complete: () => {
					// 请求完成后，调用 afterRequest 钩子
					if (this.afterRequest) {
						this.afterRequest(options);
					}
				}
			});
		});
	},
	post(url, data) {
		return new Promise((resolve, reject) => {
			const options = {
				url: this.baseUrl + url,
				method: 'POST',
				data,
			};

			// 调用 beforeRequest 钩子
			if (this.beforeRequest) {
				this.beforeRequest(options);
			}

			uni.request({
				...options,
				success: res => resolve(res),
				fail: err => reject(err),
				complete: () => {
					// 请求完成后，调用 afterRequest 钩子
					if (this.afterRequest) {
						this.afterRequest(options);
					}
				}
			});
		});
	}
}

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
	...App,
	store
})
app.$mount()
// #endif

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
import App from './App.vue'
export function createApp() {
	const app = createSSRApp(App)
	return {
		app
	}
}
// #endif